Welcome to pandas!

6.5 列数据设置为行索引

如果需要将一个DateFrame表格的列数据设置为该表的行索引,则可以使用df.set_index()

函数,可以将单列或者多列设置为行索引。如果是多列设置为行索引,那么自然就是分层索引,结构如下:

df.set_index(keys,drop=True,append=False,inplace=False,verify_inregity=False)

keys :指定要设置为行索引的列,列的表现形式有列名,Series,序列,数组,迭代器。也可以是单列,也可以是多列,如果是多列,则将多列放置在列表

drop :是否需要删除用作新索引的列,也就是设置为行索引后的列数据是否保留,默认是删除不保留。

append :是否将列添加到现有行索引,True为添加,False为完全替换,默认为False;

inplace :是否就地修改DateFrame表格,而不是创建新的DateFrame表格

verify_integity :检查新索引是否存在重复项,设置为False将提高此方法的性能。


import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.列索引设置为行索引.xlsx" )

df=df.set_index([ "部门" , #使用列名

df.籍贯.str[ -2 :], #使用Series

df.编号.str[ 3 :], #使用Series

df.编号.str[ 3 :].to_numpy(), #使用数组,不会显示列名

pd.date_range( "2024-3-1","2024-3-5" ), #使用时间序列,不会显示列名

iter(range( 101,106 )) #加iter变成一个迭代器,就可以了

])

print (df)

返回:

编号 姓名 性别 籍贯
部门 籍贯 编号
销售部 成都 01 01 2024-03-01 101 NED01 张三 四川-成都
南昌 02 02 2024-03-02 102 NED02 李四 江西-南昌
财务部 株洲 03 03 2024-03-03 103 NED03 王麻子 湖南-株洲
自贡 04 04 2024-03-04 104 NED04 小曾 四川-自贡
深圳 05 05 2024-03-05 105 NED05 小志 广东-深圳